package com.isoftstone.merchant.service.notice;

import com.isoftstone.common.Page;
import com.isoftstone.merchant.entity.feeUser.MFeeUser;
import com.isoftstone.merchant.entity.notify.BNotify;
import com.isoftstone.util.PageData;
import com.isoftstone.merchant.entity.notify.BNotifyDetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface INotifyService {
    List<BNotify> findnotifylistPage(Page page) throws Exception;

    List<BNotify> findnotifylis() throws Exception;

    //撤回
    void withdrawNotify(Long notifySeq);

    //新增
    void insertNotify(String[] treeDemoList, BNotifyDetail bNotifyDetail, BNotify bNotify);
    //新增(同时发送给缴费用户与商户人员)
    void insertNotify(String[] mUsers, BNotifyDetail bNotifyDetail, String[] feeUsers, BNotifyDetail bNotifyDetail2, BNotify bNotify);


    //催缴通知
    void reminderNotify(BNotifyDetail bNotifyDetail, BNotify bNotify,String feeUserId);

    //缴费用户审核使用begin
    int saveNotify(BNotify bNotify)throws Exception;

    //手机端获取未读通知数量
    List<BNotify> getNReadNotifyNum(String read, String status, String openAccount)throws Exception;
    //手机端获取未读通知分类明细
    List<BNotify> getNReadNotifyList(String read, String type, String status, String openAccount)throws Exception;
    //手机端获取已读通知分类明细
    List<BNotify> getReadNotifyList(String read, String type, String status, String openAccount)throws Exception;
    //手机端获取普通/签约通知
    List<BNotify> getNotifyListOne(String read, String type, String status, String openAccount)throws Exception;
    //手机端获取缴费通知
    List<BNotify> getNotifyListTwo(String read, String type, String status, String openAccount)throws Exception;
    //修改消息读取状态
    void updateNotifyRead(String read,  String notifyId, String userId)throws Exception;
    //修改消息读取状态
    void updateNotifyReadById(String read, String notifyId, String openAccount)throws Exception;
    void saveNotifyDetail(BNotifyDetail bNotifyDetail);
//商户通知列表
    List<BNotify> findMervhantNotifylistPage(Page page)throws Exception;
    //end
    //商户端获得银行通知
    List<BNotify> findBankNotifylistPage(Page page)throws Exception;

    List<BNotifyDetail> getNotifyByPayIdAndfeeUserID(Map<String, Object> map)throws Exception;

    void deleteNotify(Long notify_id)throws Exception;

    void deletenotifyFromDetail(Map<String, Object> map)throws Exception;
}
